"""
钩子函数 
"""


#导包 蓝图 请求方式  返回方式
from flask import Blueprint,request,make_response

#导入json包  
import json

from werkzeug.wrappers import response


#导入数据库包添加数据
from db import Db
#实例化数据库包
db=Db()


#导入时间包
import time


#实例化
user = Blueprint('user',__name__)


#钩子函数  前  钩子函数作用于全局只要访问就可以获取
@user.before_request
def before_requset():
    #获取访问url
    url = request.url
    #获取当前的时间
    nowtime = time.time()
    
    #获取到的URL 和时间添加到数据库里
    sql = "insert into `newtime`(`url`,`stime`) values ('%s','%s')"%(url,nowtime) 
    
    db.insert(sql)
    print('**********')
    print(url,nowtime)

#钩子函数 后 update添加结束时间
@user.after_request
def after_request(response):
    #获取url  根据url查找数据在更新
    url = request.url

    nowtime = time.time()

    #查询信息 获取id 和钩子函数为空的信息
    res = db.get_one("select * from `newtime` where url='%s' and etime is Null " % (url))
    
    print(res)
    #吧钩子函数结束时间为空的数据更新数据
    # db.update("update `newtime` set `etime`='%s' where id=%d " % (nowtime,res['id']))
    db.insert("insert into `newtime`(`url`,`stime`,`etime`) values ('%s','%s','%s') " %(url,res['stime'],nowtime))

    return make_response(response)




#写接口
@user.route('/add/',methods=["POST","GET"])
def add_new():
    #判断请求方式
    if request.method == 'POST':
        
        #接收前端传的数据  吧二进制Bye 转成 python
        data = json.loads(request.data)
        print(data)
   
        sql = "insert into `visit` (`news`) values ('%s')" % data['title']
        print(sql)
        db.insert(sql)
        return ({'code':200})

    else:
        pass
        return '阿斯加德快乐洒进来的看看了'



